1. Field of the Invention
The present invention relates to data store synchronization or computer networking and, more particularly, to a technique for optimizing a three tiered synchronization system by pre-fetching and pre-formatting synchronization data.
2. Description of the Related Art
Handheld devices are commonly synchronized with a remotely located computer so that email, contact information, calendar events, tasks, and the like are consistent between the handheld device and the computer. Conventionally, a three tiered approach is taken to synchronize the data on the handheld device. In the three tiered approach, a synchronization client residing on the handheld device connects to an intermediate server called a synchronization server, which in turn connects to a personal information management (PIM) server or other data server that resides on the remotely located computer.
More specifically, synchronization operations are typically controlled by the synchronization client that uses a well defined communication protocol, such as SyncML, to convey a synchronization request to the synchronization server. The synchronization server connects to the PIM server to query whether the PIM server includes data more current than the data which resides in the synchronization client. When data needs to be updated, the data is retrieved by the synchronization server from the PIM server and conveyed to the synchronization client. Similarly, the synchronization server can query the synchronization client for updated information and can convey any updated data found from the synchronization client to the PIM server as appropriate. Since both data stores can be updated during synchronization, the described process can be considered a bidirectional synchronization technique.
A conventional three tiered approach does not scale well. Operations performed by the synchronization server and the PIM server are performed in a client driven matter. When many clients request synchronization at approximately the same time, each requesting client contends for synchronization server and PIM server resources, which results in bottlenecks at each server and an increased response time for each user.
The type of problems experienced by a conventional approach to synchronization can be illustrated by example. Assume that between 8:00 AM and 8:15 AM four hundred executives having handheld devices arrive at their office. All of the four hundred executives check their email within fifteen minutes of arrival, three hundred through their workstations and one hundred through their handheld devices using an Extended Service Set (ESS) based system. This normally occurring morning usage spike pushes the PIM server utilization (for the PIM server that synchronizes with both an email server and a synchronization server) to over eighty percent. The synchronization server similarly experiences a usage spike, which can be worsened as the queries from the synchronization server are often queued at the PIM server, resulting in idle wait cycles at the synchronization server. Consequently, client synchronization, which is normally slow, functions at least five times slower than other points of the day.
The client response time, results in may frustrated executives, who reset synchronization tasks out of a desire to “speed things up”, which results in even greater system delays. Accordingly, synchronization operations, which typically take about ten minutes, now take over fifty minutes, which many executives feel is unacceptably slow, resulting in complaints, purchases of additional servers to increase synchronization speed, purchases of new handheld devices (which fails to resolve the problem since the bottlenecks occur at the servers), and similar expensive and/or ineffective attempted solutions. What is needed is a more scalable methodology for synchronizing handheld devices that results in less dramatic usage spikes, which in turn results in fewer server bottlenecks and user experienced delays.